const http=require("http");
const fs=require("fs");
const qs=require("querystring");
const url=require("url");

// 设定路由规则
    // 数据请求：http://localhost:3000/api
    // 静态资源请求：http://localhost:3000/

    http.createServer((req, res)=>{
        if(req.url.includes("/api")){
            dataHandle(req, res);
        }else{
            staticHandle(req, res);
        }
    
    }).listen(3000,()=>{
        console.log("服务器开启成功: http://localhost:3000")
    })

    function dataHandle(req, res){
        if(req.method === "GET"){
            const obj = url.parse(req.url, true).query;
            fn(req, res, obj);
        }else if(req.method === "POST"){
            let str = "";
            req.on("data",(d)=>{
                str += d;
            })
            req.on("end", ()=>{
                const obj = qs.parse(str);
                fn(req, res, obj);
            })
        }
    }

    function staticHandle(req, res){
        // console.log(req.url);
        // 解析url，绝对找到pathname部分，再读取文件
        fs.readFile("./www" + url.parse(req.url).pathname, (err, data)=>{
            if(err){
                res.write("404");
            }else{
                res.write(data);
            }
            res.end();
        })
    }
    
    function fn(req, res, data){
        // 此处可以拿到前端请求时携带的数据
        console.log(data);
        // 之后就可以开始具体的功能处理
        res.end();
    }